home *** CD-ROM | disk | FTP | other *** search
/ CD ROM Paradise Collection 4 / CD ROM Paradise Collection 4 1995 Nov.iso / program / swagg_m.zip / KEYBOARD.SWG / 0031_Using 101 Keys - F11-F12.pas < prev    next >
Pascal/Delphi Source File  |  1993-08-17  |  850b  |  35 lines

  1. {  Return Extended keys for 101 Keyboard including F11/F12.
  2.    If key is extended, the BOOLEAN = TRUE.  This is needed as Home key will
  3.    return the same character value as 'G' }
  4.  
  5. USES DOS;
  6.  
  7. VAR Ch : Char;
  8.     Ext : BOOLEAN;
  9.  
  10. function ExReadKey(VAR Extended : BOOLEAN) : char;
  11. var Regs : registers;
  12. begin
  13.   Regs.AX := $1000;
  14.   Intr($16,Regs);
  15.   Extended := (Regs.AL = 0) OR (Regs.AL > 127);
  16.   IF Extended THEN ExReadKey  := Chr(Regs.AH)
  17.   ELSE ExReadKey := Chr(Regs.AL);
  18. end;
  19.  
  20. function ReadKey : char;
  21. { This function adds 128 to char if it is extended }
  22. var Regs : registers;
  23. begin
  24.   Regs.AX := $1000;
  25.   Intr($16,Regs);
  26.   IF (Regs.AL = 0) OR (Regs.AL > 127) THEN
  27.   ReadKey  := Chr(Regs.AH + 128) ELSE ReadKey := Chr(Regs.AL);
  28. end;
  29.  
  30. Begin
  31. Repeat
  32. ch := ReadKey;
  33. WriteLn(ch,' ',Ext,' ',ORD(Ch));
  34. Until Ch = #27;
  35. END.